package com.example.service;

import com.example.common.Result;
import com.example.common.PageResult;
import com.example.dto.PurchaseDTO;
import com.example.vo.PurchaseRecordVO;

import java.util.List;

public interface PurchaseService {
    
    /**
     * 用户购买商品
     */
    Result<Void> purchaseProduct(PurchaseDTO purchaseDTO);
    
    /**
     * 获取当前用户的购买记录
     */
    Result<List<PurchaseRecordVO>> getMyPurchaseRecords();
    
    /**
     * 分页查询当前用户的购买记录
     */
    Result<PageResult<PurchaseRecordVO>> getMyPurchasePage(int page, int size, String keyword);
    
    /**
     * 分页查询所有用户的购买记录（管理员使用）
     */
    Result<PageResult<PurchaseRecordVO>> getAllPurchasePage(int page, int size, String keyword);
    
    /**
     * 根据ID查询购买记录详情
     */
    Result<PurchaseRecordVO> getPurchaseRecordById(Long id);
    
    /**
     * 根据商品ID查询购买记录
     */
    Result<List<PurchaseRecordVO>> getPurchaseRecordsByProductId(Long productId);
    
    /**
     * 取消购买记录（如果支持的话）
     */
    Result<Void> cancelPurchaseRecord(Long id);
} 